package com.tangcco.lockwell.repository;

import com.tangcco.lockwell.domain.User;
import com.tangcco.lockwell.domain.UserEventLog;
import com.tangcco.lockwell.domain.other.KeyValue;
import com.tangcco.lockwell.viewmodel.admin.user.UserEventPageRequestVM;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface UserEventLogMapper<T> extends BaseMapper<UserEventLog>{
    //根据id查询用户日志进行降序分页查询
    List<UserEventLog> getUserEventLogByUserId(Integer id);
    //查询主要是从 t_user_event_log表中按条件筛选出与userId和userName匹配的用户日志
    List<UserEventLog> page(UserEventPageRequestVM requestVM);
    //查询指定日期范围内的信息
    List<KeyValue> selectCountByDate(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
    //普通添加
    int addUserEventLog(UserEventLog userEventLog);
    //根据user_id动态查询用户日志表
    List<UserEventLog> selectByUserId(Integer userId);
    //查开用户活跃度name是日期 value是登录次数
    List<KeyValue> selectMothCount(@Param("year") String year, @Param("month") String month);
    //查看用户题目月数量
    List<KeyValue> selectQuestionMothCount(@Param("year") String year, @Param("month") String month);
    //查询用户登录/打卡天数
    int selectCountByUserName(String userName);
    //根据用户昵称查积分
    Integer selectIntegralByUserName(String userName);
    //根据用户昵称查询连续学习天数
    Integer selectKeepLearning(String userName);


}
